# -*- coding: utf-8 -*-
'''
projecto- classe destinada a criação da base de dados
autor- Ana Isabel Marques 6052
data de criação do módulo- 01/12/2011

'''

import csv
import sqlite3

#############################################################################
#Criação da Base de Dados
#############################################################################
class CriacaoBaseDados:
    
    #Construtor
    def __init__(self):
        pass
  
    #Este método cria as tabelas da Base de Dados (rebides.db)
    # -cada tabela contém toda a informação relativa aos docentes,
    #por ano
    def cria_tabelas(self):
        conn = sqlite3.connect('rebides.db')
        cursor = conn.cursor()

        for x in range(0, 11):
            cursor.execute("""DROP TABLE IF EXISTS reb{0}""".format(x))
            cursor.execute("""CREATE TABLE IF NOT EXISTS reb{0}(
                        codigo_docente INTEGER,
                        nome_docente TEXT,
                        ultimo_grau_docente TEXT,
                        curso_docente TEXT,
                        categoria_docente TEXT,	
                        regime_docente TEXT,
                        ano INTEGER,
                        tipo_estabelecimento TEXT,
                        nome_estabelecimento TEXT)
                        """.format(x))
            pass
        cursor.close()
        pass
    
    #Este método preenche as tabelas com base nos ficheiros csv 
    def preencher_tabelas(self):

        conn = sqlite3.connect('rebides.db')
        cursor = conn.cursor()

        for x in range (0, 11):
            ficheiro = open('rebcsv/reb{0}.csv'.format(x), 'rb')
            
            reader= csv.reader(ficheiro)
            reader.next()
            
            spamReader = csv.reader(ficheiro, delimiter=',')

            for row in spamReader:
                cursor.execute("""insert into reb{0}(codigo_docente, nome_docente, ultimo_grau_docente,
                        curso_docente, categoria_docente, regime_docente,ano, tipo_estabelecimento, nome_estabelecimento)
                        values ('{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')""".
                        format(x, str(row[0]).replace('\'', ' '),str(row[1]).replace('\'', ' '),str(row[2]).replace('\'', ' '),
                               str(row[3]).replace('\'', ' '),str(row[4]).replace('\'', ' '),str(row[5]).replace('\'', ' '),
                               str(row[6]).replace('\'', ' '),str(row[7]).replace('\'', ' '),str(row[8]).replace('\'', ' ')))
                pass
            pass
            ficheiro.close()
        pass
        conn.commit()
        conn.close()
    pass

obj = CriacaoBaseDados()
obj.cria_tabelas()
obj.preencher_tabelas()





			
				
		
		
		
		
		
		
	
